草庐IT

javascript - Angular.js 与 Sinatra

全部标签

Ruby:Phantom.js 在特定站点上被阻止?

我正在使用capybarapoltergeist来自动化tumblr.com上的一个小脚本我的脚本在我的chrome驱动程序上运行良好。我的poltergeist驱动程序加载所有其他网站都很好,但由于某种原因,当我尝试加载tumblr时抛出Capybara::Poltergeist::StatusFailError.复制步骤:$brewinstallphantomjs$geminstallcapybara$geminstallpoltergeist$geminstallselenium-webdriver$irbrequire'capybara/poltergeist'moduleDr

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript

似乎Selenium有一个名为JavascriptExecutor的功能,它可以直接在页面上执行JavaScript。然而,我的Cucumber/Capybara测试似乎没有这样的东西。如何从我的Cucumber测试中执行任意JavaScript? 最佳答案 Capybara有两种执行javascript的方法#execute_script和#evaluate_script。两者都可以在以下位置找到:http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Seleni

ruby - 如何像在 Javascript 中一样在 Ruby 中动态创建对象及其方法?

我最近发现在Ruby中动态创建对象和方法是一件很费力的事情,这可能是因为我有Javascript背景经验。在Javascript中,您可以动态创建对象及其方法,如下所示:functionsomewhere_inside_my_code(){foo={};foo.bar=function(){/**dosomething**/};};如何在Ruby中完成上述语句(与在Javascript中一样简单)? 最佳答案 您可以使用单例方法实现此目的。请注意,您可以对所有对象执行此操作,例如:str="Ilikecookies!"defstr.

ruby-on-rails - 使用 Rails Assets 管道在 JavaScript 文件中编码问题

我正在使用Rails3.1和Assets管道(ruby1.9.2)。在尝试提供具有utf-8编码字符串的javascriptjs.erb文件时出现以下错误invalidbytesequenceinUS-ASCII我在我的environment.rb文件中设置了Encoding.default_external="UTF-8"。我如何让Assets管道以不同的编码提供服务?编辑仅当我在文件外部生成utf-8字符时才会出现该错误(在本例中是通过从数据库查询)。如果我添加,错误就会消失到文件的顶部。我猜这里会进行某种编码猜测,但如果没有那种骇人听闻的解决方案,我该如何避免呢?

ruby - 如果找不到文件,则在 sinatra 中呈现 404

我有一个基本的sinatra应用程序,可以从目录中呈现文件。如果页面不存在,我想要的是返回404。目前它会引发500错误。get'/:page'doerb:"pages/#{params[:page]}",layout::"layouts/application"end 最佳答案 试试这个;)#404Error!not_founddostatus404erb:oopsend用您喜欢的任何名称为自己创建一个404页面(例如,我的名称是oops.erb),这应该可以正常工作。not_found是Sinatra的错误处理助手,用于获取它返

ruby - 未设置的 Sinatra 和 session 变量

出于某种原因,我的应用程序中未设置session变量。我正在使用Sinatra1.2.1。这是一段代码:moduleGitWikiclassApp"utf-8"@user=session[:user]endget"/login/?"doerb:loginendpost"/login"douser=User.getifuser.authenticate(params[:username],params[:password])session[:user]=params[:username]psession#=>{:user=>"root"}else#AZIZ!LIGHT!endredire

ruby-on-rails - 从 HTML 页面中删除所有 JavaScript

我试过使用Sanitizegem清理包含网站HTML的字符串。它只删除了标记,而不是脚本标记内的JavaScript。我可以使用什么从页面中删除JavaScript? 最佳答案 require'open-uri'#includedwithRuby;onlyneededtoloadHTMLfromaURLrequire'nokogiri'#geminstallnokogirireadmoreathttp://nokogiri.orghtml=open('http://stackoverflow.com')#GettheHTMLsour

ruby - Sinatra::Application:Class 的未定义方法 `desc'

这是我在运行任何rake命令时遇到的错误:undefinedmethod'desc'forSinatra::Application:Class#app.rbrequire'sinatra'require'sinatra/activerecord'require'sinatra/contrib'get'/'doputs"HelloWorld"end#config.rurequire"./app"runSinatra::Application#Rakefilerequire'./app'require'sinatra/activerecord/rake'#Gemfilesource'htt

ruby - 如何使用 "run"启动 Sinatra 应用程序

我尝试在我的Sinatra应用程序中使用Gemfile,但是当我启动我的应用程序时,出现了这个错误:$rubyconfig.ruconfig.ru:7:in`':undefinedmethod`run'formain:Object(NoMethodError)这是我的三个文件:你好.rb:get"/"do"Helloworld"endgem文件:gem"sinatra"配置.ru:require'rubygems'require'bundler'Bundler.requirerequireFile.join(File.dirname(__FILE__),'hi.rb')runSinat

ruby - 无法使用 rackup 和 jRuby 启动简单的 Sinatra 应用程序(网络服务器无响应)

我有一个Sinatra“helloworld”应用程序,我正尝试使用jRuby运行它。它在我运行应用程序时有效,但在我运行rackup时无效。谁能告诉我这是怎么回事?这是应用程序,在文件“app.rb”中:require'rubygems'require'bundler/setup'require'sinatra'configuredoset:bind,'0.0.0.0'endget'/'do'Boo!'end我可以使用bundleexecruby​​app.rb运行它,它工作正常:jonea@centos7andy[~/andy/sinatra_sand_jruby]%:bundle